/**
 * https://leetcode.cn/problems/isomorphic-strings/
 * 题目：
 * 
 * egg 和 add 同构，就意味着下边的映射成立
e -> a
g -> d
也就是将 egg 的 e 换成 a, g 换成 d, 就变成了 add

同时倒过来也成立
a -> e
d -> g
也就是将 add 的 a 换成 e, d 换成 g, 就变成了 egg

foo 和 bar 不同构，原因就是映射不唯一
o -> a
o -> r
其中 o 映射到了两个字母


总结：
字符串替换要用replace,或者用split+join,或者substring
不能用数组索引方式改变字符串
 */

/**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
var isIsomorphic = function(s, t) {
   // 比较字符串1 和 字符串2
    return helper(s,t) && helper(t,s)
};

function helper(str1,str2){
    let map={};

    for(let i=0;i<str1.length;i++){
       const s1=str1[i];
       const s2=str2[i];
     
       if(map[s1]==undefined){
           map[s1]=s2;
             
       }else{
           if(map[s1]!=s2){
               return false;
           }
       } 
    }
    
    return true
}

console.log(isIsomorphic('abc','efg'));
console.log(isIsomorphic('abb','egg'));
console.log(isIsomorphic('abc','egg'));